package com.enjoyor.soa.traffic.api.service.dubbo.bigdata;

import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

import java.util.Date;
import java.util.List;

/**
 * 涉疆涉藏 车辆查询
 */
public interface DubboAnalyzeSinkiangTibetVehService {

    /**
     * 对涉疆涉藏进行分析并获取分页结果
     *
     * @param licenseType 号牌类型
     * @param licenseNum 号牌号码
     * @param licenseRegionLst 属地 ：空 查询全部
     *               对应值为 ubms 里表DIC_VEHICLE的字段DIC_VALUE： 藏A、藏B...
     * @param startTime 分析起始日期
     * @param endTime 分析截止日期
     * @param isFirstInto 是否首次入城 1:是， 其他:全部
     * @param page 分页
     * @return Page &lt; SinkiangTibetVehDto &gt; ：包含涉疆涉藏车信息 的分页集合
     */
    public ResultPojo analyzeSinkiangTibetVeh(String token, String licenseType, String licenseNum, List<String> licenseRegionLst,String isFirstInto, Date startTime, Date endTime, Page page);

    /**
     * 导出涉疆涉藏分析结果
     *
     * @param licenseType 号牌类型
     * @param licenseNum 号牌号码
     * @param licenseRegionLst 属地 ：空 查询全部
     *               对应值为 ubms 里表DIC_VEHICLE的字段DIC_VALUE： 藏A、藏B...
     * @param startTime 分析起始日期
     * @param endTime 分析截止日期
     * @param isFirstInto 是否首次入城 1:是， 其他:全部
     * @param startIndex 导出起始数据，默认 1
     * @param endIndex 导出起始数据，默认 5000
     * @return List &lt; SinkiangTibetVehDto &gt; ：包含伴随车信息 的集合
     */
    public ResultPojo expSinkiangTibetVeh(String token, String licenseType, String licenseNum, List<String> licenseRegionLst,String isFirstInto, Date startTime, Date endTime,int startIndex,int endIndex);

    /**
     * 涉疆涉藏 总记录数
     *
     * @param token
     * @param licenseType 号牌类型
     * @param licenseNum 号牌号码
     * @param licenseRegionLst 属地 ：空 查询全部
     *               对应值为 ubms 里表DIC_VEHICLE的字段DIC_VALUE： 藏A、藏B...
     * @param startTime 分析起始日期
     * @param endTime 分析截止日期
     * @param isFirstInto 是否首次入城 1:是， 其他:全部
     * @return 总记录数
     */
    public ResultPojo countSinkiangTibetVeh(String token, String licenseType, String licenseNum, List<String> licenseRegionLst,String isFirstInto, Date startTime, Date endTime);


}
